// Read comma separated values from a string.
// By DreamVB 21:14 15/10/2016

#include <iostream>

using namespace std;
using std::cout;
using std::endl;

string GetCsvLineValue(string src, char sep, int index){
	int i = 0;
	int idx = 0;
	int len = src.length();
	string buffer = "";
	string sItem = "";

	while (i < len){
		if (src[i] == sep){
			//Check the index to return
			if (idx == index){
				sItem = buffer;
				break;
			}
			//Clear buffer
			buffer.clear();
			//INC index.
			idx += 1;
		}
		else{
			//Build the new string.
			buffer += src[i];
		}
		//INC counter
		i++;
	}
	//if Idx equals index return buffer contents.
	if (idx == index){
		sItem = buffer;
	}

	//Clear up.
	src.clear();
	buffer.clear();
	//Return
	return sItem;
}

int main(int argc, char *argv[]){
	//CSV source line
	char *csv = "1|1.5|David Brown|M|01235-654841|$1000";
	int size = 5;
	int i = 0;
	int sep = '|';

	cout << "Source : " << csv << endl << endl;
	cout << "VALUES : " << endl;

	//Print out all values in csv source string
	for (i = 0; i <= size; i++){
		cout << "[Index: " << i << "] " << GetCsvLineValue(csv, sep, i).c_str() << endl;
	}

	//Pause
	system("pause");
	return 0;
}